package flex.cc.order.manage.dao;

import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import flex.cc.order.manage.dto.order.OrderServiceProviderEntity;
import flex.cc.order.manage.dto.vo.OrderRescuerVo;

import org.springframework.stereotype.Repository;

/**
 *
 * @author WANGCONG
 * 2021年9月6日下午4:33:15
 * @desc 服务单服务信息数据层
 */
@Mapper
@Repository
public interface OrderServiceProviderDao extends BaseMapper<OrderServiceProviderEntity>{

	/**
	 *
	 * @author WANGCONG
	 * 2021年9月10日下午5:29:06
	 * @desc 根据map更新服务信息（状态回写）
	 */
	int updateByParams(Map<String, Object> param);

	/**
	 * @description 插入
	 * @param orderServiceProviderEntity
	 * @return
	 * @author wkangle
	 * @time 2021/09/14 0014 16:02
	 * @exception/throws
	*/
	int insert(OrderServiceProviderEntity orderServiceProviderEntity);

	/**
	 * @description 更新
	 * @param orderServiceProviderEntity
	 * @return
	 * @author wkangle
	 * @time 2021/09/14 0014 17:50
	 * @exception/throws
	*/
	int update(OrderServiceProviderEntity orderServiceProviderEntity);

	/**
	 * @description 根据查询条件查询服务单服务信息
	 * @param params 查询条件
	 * @return
	 * @author wkangle
	 * @time 2021-09-15 17:05:26
	 * @exception/throws
	 */
	OrderServiceProviderEntity getOneByParams(Map<String, Object> params);

	/**
	 *
	 * @author WANGCONG
	 * 2021年10月21日上午9:31:09
	 * @desc 根据map更新服务单中服务商信息
	 */
	int updateServicer(Map<String, String> param);

	/**
	 *
	 * @author WANGCONG
	 * 2021年11月18日上午9:36:02
	 * @desc 服务单派发失败，清空服务单中服务商信息
	 */
	int clearInfo(Map<String, String> servicerMap);

	/**
	 *
	 * @author WANGCONG
	 * 2022年3月25日上午9:31:59
	 * @desc 查看相同车牌号重复下单的救援商信息
	 */
	OrderRescuerVo findRepeatOrderByCarNo(String carNo);
	/**
	 *
	 * @author WANGCONG
	 * 2022年4月21日上午9:30:16
	 * @desc 根据配置查看相同车牌号重复下单的救援商信息V2.0
	 */
	OrderRescuerVo findRepeatOrderByCarNo_V2(@Param("carNo")String carNo, @Param("verifyTime")String verifyTime);
	
}
